Skip to content

Issue 533#534

Closed
d-kad wants to merge 64 commits intogambitproject:issue_440from
d-kad:issue_533
Closed

Issue 533#534
d-kad wants to merge 64 commits intogambitproject:issue_440from
d-kad:issue_533

Conversation

@d-kad
Copy link
Copy Markdown
Contributor

@d-kad d-kad commented Jun 27, 2025

Two steps:

  1. Added GameTreeRep::BuildPlayerConsequences; stored m_playerConsequences as a private member variable of the GameTreeRep class and make it a part of BuildComputedValues;
  2. Added debug logs to GameTreeRep::BuildPlayerConsequences to illustrate the novel structure, those will be eventually removed;
  3. TODO: implement GameTreeRep::MakeReducedStratPR.

tturocy and others added 30 commits January 8, 2025 11:52
This removes the class hierarchy structure for Nash equilibrium algorithms,
in favor of using function types as appropriate.
This adds a GitHub action workflow that builds a binary artifact
of the OSX graphical interface (and disk image) only on a release tag or cron.

This builds a custom static version of wxWidgets, so it is rather more
expensive than the usual test builds.
This updates the implementation and interface of PureStrategyProfile:
* Remove player-index-based access
* Implement using a map in parallel to PureBehaviorProfile
* Use shared_ptr to manage memory for pointer-to-implementation
This accomplishes some cleanup of the linear algebra sublibrary,
removing unused or duplicated code, simplifying structures, and so on.
Bumps [jidicula/clang-format-action](https://github.com/jidicula/clang-format-action) from 4.14.0 to 4.15.0.
- [Release notes](https://github.com/jidicula/clang-format-action/releases)
- [Commits](jidicula/clang-format-action@v4.14.0...v4.15.0)

---
updated-dependencies:
- dependency-name: jidicula/clang-format-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
This performs some outstanding rationalisation of `GameObjectRep` objects:

* Removes indexing of payoffs by player index
* Templates `GetPayoff` to obtain payoffs directly in the
  desired representation
* Store payoffs using a `std::map` instead of `Array`.

Closes gambitproject#490.
This corrects a regression which invalidates an information set object
earlier than it should.

This can lead to a segmentation fault in certain situations, as in effect `delete this` is
called before it ought to be.
# Conflicts:
#	ChangeLog
This fixes a bug in `MixedStrategyProfile<T>::operator[]` which was
not producing the correct output when called for a player.

This is only used at present in constructing the equilibrium cliques
after `enummixed_solve` and as such has flown under the radar.
# Conflicts:
#	.github/workflows/tools.yml
* Checks are now applied to .h and .imp files
* The C++17 extension of directly specifying nested namespaces via
  the :: notation is now enforced.
* Checks are not applied to the GUI for now (due to challenges with
  excluding headers, and flagging issues that ultimately arise
  from the design of wxWidgets)
.
The roles of the `src` and `dest` arguments of `copy_tree` and `move_tree`
were reversed.  This corrects this error and adds a few
tests.

Closes gambitproject#499.
# Conflicts:
#	.github/workflows/tools.yml
* Migrated pygambit metadata to pyproject.toml
* Officially added support for Python 3.13
* Added pytest configuration of marks for Nash equilibrium algorithms, slow tests
This implements some clean-ups that address some compiler warnings.
Principal among these are more consistent uses of size_t for values
which are related to the sizes of containers.

Along the way, where it was straightforward to do so, some passages
were re-written to avoid signed/un-signed comparisons by using
instead STL algorithms and idioms.
This changes the following game operations in C++:
* `NewStrategy` moves from `GamePlayerRep` to `GameRep`
* `NewStrategy` now requires a strategy label string
* `DeleteStrategy` moves from `GameStrategyRep` to `GameRep`.
d-kad and others added 6 commits May 7, 2025 11:29
This implements a new template class, ElementCollection, which represents
a collection of objects in a game.  This handles efficient access
and iteration over game objects without the need to allocate a new container.

Closes gambitproject#516
This provides computation of the set of plays (terminal nodes) consistent with
passing through a specified node, information set, or action:
* `GameRep.GetPlays()` in C++
* Properties `Node.plays`, `Infoset.plays`, `Action,plays` in Python.

Closes gambitproject#517.
This provides an interface to the mapping from strategy to actions in an extensive game:
* `GameStrategyRep::GetAction(GameInfoset)` in C++
* `Strategy.action(Infoset)` in Python`
@d-kad d-kad requested review from rahulsavani and tturocy June 27, 2025 08:31
Copy link
Copy Markdown
Member

@tturocy tturocy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some organisational things:

  • This should be proposed to be merged back into the issue branch, not master.
  • PRs should to the extent possible be separate from each other. This one does not depend on the revised implementation of the perfect recall checker, so that should not be being included here.

This actually does not do anything with computing the reduced strategies, which is the whole point of this exercise. And it's the data that that algorithm needs which determines whether the player consequences data structure that's being built here is the right one (or not).

@d-kad d-kad changed the base branch from master to issue_440 June 28, 2025 15:51
@d-kad d-kad closed this Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants